/**
 * 单个省份的结构
 */
export interface DictItem {
  /**
   * ID
   */
  id: number;
  /**
   * 创建时间
   */
  createTime: string;
  /**
   * 更新时间
   */
  updateTime: string;
  /**
   * 是否删除
   */
  isDeleted: number;
  /**
   * 参数
   */
  param: {};
  /**
   * 父级 ID
   */
  parentId: number;
  /**
   * 名称
   */
  name: string;
  /**
   * 值
   */
  value: string;
  /**
   * 编码
   */
  dictCode?: any;
  /**
   * 是否有子元素
   */
  hasChildren: boolean;
}

/**
 * 请求获取医院列表参数的结构
 */
export interface ReqGetHospitalListParams {
  page: number;
  limit: number;
  hoscode?: string;
  hosname?: string;
  hostype?: string;
  provinceCode?: string;
  cityCode?: string;
  districtCode?: string;
  status?: number;
}

/**
 * 获取医院列表的响应结构
 */
export interface ReqGetHospitalListResponse {
  /**
   * 医院列表
   */
  content: HospitalListItem[];
  /**
   * 分页相关的参数
   */
  pageable: Pageable;
  /**
   * 总的页码数
   */
  totalPages: number;
  /**
   * 总的数据的数量
   */
  totalElements: number;
  /**
   * 是否是最后一页
   */
  last: boolean;
  /**
   * 是否为第一页
   */
  first: boolean;
  /**
   * 排序相关的参数
   */
  sort: Sort;
  /**
   * 本次返回结果的数量
   */
  numberOfElements: number;
  /**
   * 大小
   */
  size: number;
  number: number;
  /**
   * 是否为空
   */
  empty: boolean;
}

interface Pageable {
  sort: Sort;
  pageNumber: number;
  pageSize: number;
  offset: number;
  paged: boolean;
  unpaged: boolean;
}

interface Sort {
  sorted: boolean;
  unsorted: boolean;
  empty: boolean;
}

//单条数据的结构
export interface HospitalListItem {
  /**
   * id
   */
  id: string;
  /**
   * 创建时间
   */
  createTime: string;
  /**
   * 更新时间
   */
  updateTime: string;
  /**
   * 是否删除
   */
  isDeleted: number;
  /**
   * 医院的参数
   */
  param: Param;
  /**
   * 医院编号
   */
  hoscode: string;
  /**
   * 医院名称
   */
  hosname: string;
  /**
   * 医院类型
   */
  hostype: string;
  /**
   * 省份编号
   */
  provinceCode: string;
  /**
   * 城市编号
   */
  cityCode: string;
  /**
   * 区域编号
   */
  districtCode: string;
  /**
   * 地址
   */
  address: string;
  /**
   * logo
   */
  logoData: string;
  /**
   * 医院介绍
   */
  intro: string;
  /**
   * 乘车路线
   */
  route: string;
  /**
   * 状态
   */
  status: number;
  /**
   * 预约规则
   */
  bookingRule: BookingRule;
}

interface BookingRule {
  /**
   * 预约周期
   */
  cycle: number;
  /**
   * 放号时间
   */
  releaseTime: string;
  /**
   * 停止时间
   */
  stopTime: string;
  /**
   * 退号日期
   */
  quitDay: number;
  /**
   * 退号时间
   */
  quitTime: string;
  /**
   * 预约规则
   */
  rule: string[];
}

interface Param {
  /**
   * 医院类型字符串
   */
  hostypeString: string;
  /**
   * 医院地址
   */
  fullAddress: string;
}
export type Status = 0 | 1;

export interface SearchHospitalListParams {
  hoscode?: string; // 医院编号
  hosname?: string; // 医院名称
  hostype?: string; // 医院等级
  provinceCode?: string; // 省code
  cityCode?: string; // 市code
  districtCode?: string; // 区code
  status?: Status; // 状态 0：未上线 1：已上线
}

// 获取医院列表参数类型
export interface GetHospitalListParams extends SearchHospitalListParams {
  page: number;
  limit: number;
}
